A group of one or more networked servers located at a particular location is referred to herein as a “co-location.” The servers at co-locations are often centrally managed. For example, for services that can be provided by servers at multiple co-locations, a managing entity may assign, to a particular user, a quota on the amount of requests for services that the user may submit. Under these circumstances, the user's accesses to multiple co-locations must be considered when determining whether the user has exceeded its quota.
Managing traffic across co-locations often requires operating a layer of servers that are external to the co-locations themselves, but that manage the tasks performed by the servers that belong to those co-locations. Such servers are referred to herein as “external servers.” The external servers are often a part of a backbone infrastructure, and are configured to aggregate and manage web service information.
The external servers may be responsible for interpreting and enforcing network policies. For example, the external servers may be responsible for deciding whether requests received by web servers that belong to co-locations may be serviced. The external servers may also be responsible for aggregating traffic information for the co-locations, and managing a variety of other aspects of web services provided at the co-locations.
Managing web traffic may be implemented in external servers in a variety of ways. For example, the external servers may be configured to determine whether traffic management policies allow requests to be serviced. More specifically, the external servers may be configured to determine whether servicing a request from a particular request sender complies with the limits and quotas provisioned for the particular request sender.
Regardless of the implementation, reliance on external servers often establishes a separation between traffic management functionalities (delegated to the external servers), and traffic processing functionalities (delegated to web servers that belong to the co-locations). Unfortunately, the separation between the traffic management functionalities and the traffic processing functionalities may cause a variety of problems. For example, since the external servers and the web servers need to communicate with each other, a great deal of additional traffic is often generated between the servers. The additional traffic may negatively impact the network bandwidth. Furthermore, setting up, configuring and maintaining the external servers may be time-consuming and challenging. Integration of the external servers into a web service provider network may also be difficult.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.